package com.mo.admin.api.menu.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mo.admin.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 系统菜单表
 *
 * @TableName sys_menu
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "sys_menu")
public class Menu extends BaseEntity {
    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 父菜单ID，一级菜单为0
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long parentId;

    /**
     * 菜单名称(路由名称)
     */
    private String name;

    /**
     * 路由地址
     */
    private String path;

    /**
     * 组件路径
     */
    private String component;

    /**
     * 重定向地址
     */
    private String redirect;

    /**
     * 菜单图标
     */
    private String icon;

    /**
     * 菜单标题
     */
    private String title;

    /**
     * 外链地址
     */
    private String isLink;

    /**
     * 是否隐藏：0-否 1-是
     */
    private Integer isHide;

    /**
     * 是否全屏：0-否 1-是
     */
    private Integer isFull;

    /**
     * 是否固定在标签页：0-否 1-是
     */
    private Integer isAffix;

    /**
     * 是否缓存：0-否 1-是
     */
    private Integer isKeepAlive;

    /**
     * 高亮菜单
     */
    private String activeMenu;

    /**
     * 排序号
     */
    private Integer sort;

    /**
     * 状态：0-禁用 1-启用
     */
    private Integer status;

    /**
     * 是否默认：0-否 1-是
     */
    private Integer isDefault;
}